<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
第一种方法，也是最简单的方法是锚点用<a>标签，在href属性中写入DIV的id。如下：

    <!DOCTYPE html>
    <html>
    <head>
        <style>
            div {
                height: 800px;
                width: 400px;
                border: 2px solid black;
            }
            h2 {
                position: fixed;
                margin:50px 500px;
            }
        </style>
    </head>
    <body>
    <h2>
        <a href="#div1">to div1</a>
        <a href="#div2">to div2</a>
        <a href="#div3">to div3</a>
    </h2>
    <div id="div1">div1</div>
    <div id="div2">div2</div>
    <div id="div3">div3</div>
    </body>
    </html>
    http://www.cnblogs.com/zqifa/p/html-1.html
    这种方法的缺点是点击锚点之后，浏览器的URL会发生变化，如果刷新可能会出现问题。　

    第二种方法是在js事件中通过window.location.hash="divId"跳转，但地址也会发生变化，感觉跟第一种方法没区别，甚至更麻烦。

    第三种方法是用animate属性，当点击锚点后，页面滚动到相应的DIV。接着上面的代码，具体添加如下代码：

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#div1Link").click(function() {
                $("html, body").animate({
                    scrollTop: $("#div1").offset().top }, {duration: 500,easing: "swing"});
                return false;
            });
            $("#div2Link").click(function() {
                $("html, body").animate({
                    scrollTop: $("#div2").offset().top }, {duration: 500,easing: "swing"});
                return false;
            });
            $("#div3Link").click(function() {
                $("html, body").animate({
                    scrollTop: $("#div3").offset().top }, {duration: 500,easing: "swing"});
                return false;
            });
        });
    </script>

    注意：运行上面的脚本的之前，先将为锚点增加相应的id，同时去掉href属性。　　　

    $("html, body")可以替换为响应的div，如果不起作用，试着给该div增加overflow：scroll属性。
    另外，脚本可以进一步优化，自己来试试

    这样做的好处是：URL地址不会变，同时点击锚点时会自动响应scroll事件，不需要重新绑定。

    缺点是：如果页面复杂的话，偏移值可能会发生变化需要算法辅助。


    第四种方法是用js的srollIntoView方法，直接用:
    document.getElementById("divId").scrollIntoView();
    这种方法的好处，是URL不会变，同时能够响应相应的scroll事件，不需要算法什么的。

    推介大家用第四种，我依次试了前三种，都有各种问题。



    如果觉得这文章还算用心，请劳驾点击右下角的推荐，这是对我们这些做开源分享的最大的肯定，谢谢。
</body>
</html>